package com.tju.ocean_ecology_website.entity;

import java.math.BigDecimal;
import java.util.Date;
import java.io.Serializable;

/**
 * 活动考勤表(ActivityAttendance)实体类
 *
 * @author shaolong
 * @since 2025-05-10 10:00:00
 */
public class ActivityAttendance implements Serializable {
    private static final long serialVersionUID = 789456123789456123L;

    /**
     * 记录ID
     */
    private Long id;

    /**
     * 报名ID
     */
    private Long signupId;

    /**
     * 活动ID
     */
    private Long activityId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 考勤日期
     */
    private Date attendanceDate;

    /**
     * 签到时间
     */
    private Date checkinTime;

    /**
     * 签到位置
     */
    private String checkinLocation;

    /**
     * 签退时间
     */
    private Date checkoutTime;

    /**
     * 签退位置
     */
    private String checkoutLocation;

    /**
     * 服务时长(小时)
     */
    private BigDecimal serviceHours;

    /**
     * 状态：0-进行中, 1-已完成, 2-异常
     */
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    // 非数据库字段，用于关联查询
    private String activityTitle;
    private String userName;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getSignupId() {
        return signupId;
    }

    public void setSignupId(Long signupId) {
        this.signupId = signupId;
    }

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Date getAttendanceDate() {
        return attendanceDate;
    }

    public void setAttendanceDate(Date attendanceDate) {
        this.attendanceDate = attendanceDate;
    }

    public Date getCheckinTime() {
        return checkinTime;
    }

    public void setCheckinTime(Date checkinTime) {
        this.checkinTime = checkinTime;
    }

    public String getCheckinLocation() {
        return checkinLocation;
    }

    public void setCheckinLocation(String checkinLocation) {
        this.checkinLocation = checkinLocation;
    }

    public Date getCheckoutTime() {
        return checkoutTime;
    }

    public void setCheckoutTime(Date checkoutTime) {
        this.checkoutTime = checkoutTime;
    }

    public String getCheckoutLocation() {
        return checkoutLocation;
    }

    public void setCheckoutLocation(String checkoutLocation) {
        this.checkoutLocation = checkoutLocation;
    }

    public BigDecimal getServiceHours() {
        return serviceHours;
    }

    public void setServiceHours(BigDecimal serviceHours) {
        this.serviceHours = serviceHours;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getActivityTitle() {
        return activityTitle;
    }

    public void setActivityTitle(String activityTitle) {
        this.activityTitle = activityTitle;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}
